Кістякове дерево
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Minimum_spanning_tree.svg/220px-Minimum_spanning_tree.svg.png)
Кістякове дерево (англ. Spanning tree) зв'язаного неорієнтованого графа — ациклічний (тобто, без циклів) зв'язний підграф цього графа, який містить усі його вершини[1]. Неформально кажучи, кістякове дерево складається з деякої підмножини ребер графа, таких, що рухаючись цими ребрами можна з будь-якої вершини графа потрапити до будь-якої іншої.
Кістякове дерево також називають каркасним деревом[1], покриваючим деревом[джерело?], кістяком або каркасом графа[2].
Будь-яке кістякове дерево у графі з n вершинами містить рівно n — 1 ребер. Кількість кістякових дерев у повному графі з n вершинами подається відомою формулою Келі:
У загальному випадку, кількість кістякових дерев у довільному графі можна обчислити за допомогою так званої матричної теореми про дерева[джерело?].
Кістякове дерево може бути побудовано майже будь-яким алгоритмом обходу графа, наприклад пошуком у глибину або у ширину. Воно складається з усіх пар ребер (u, v), таких, що алгоритм, переглядаючи вершину u, виявляє в її списку суміжності нову, невиявлену раніше вершину v. Кістякове дерево, побудоване обходом графа починаючи з вершини s за алгоритмом Дейкстри, має властивість, що найкоротший шлях у графі з вершини s до будь-якої іншої вершини — це шлях з s до цієї вершини в побудованому дереві.
Існує кілька паралельних і розподілених алгоритмів пошуку кістякового дерева. Як практичний приклад розподіленого алгоритму можна навести протокол STP.
Якщо кожному ребру графа присвоєно вагу (зважений граф), то пошук кістякового дерева, яке мінімізує суму ваги його ребер, здійснюють численні алгоритми пошуку мінімального кістякового дерева.
Задача про пошук кістяка, в якому степінь кожної вершини не перевищує деякої наперед заданої константи k, є NP-повною[джерело?].
Поняття кістяковий ліс неоднозначне, під ним можуть розуміти один з таких підграфів:
- Будь-який ациклічний підграф, до якого входять всі вершини графа, але він не є зв'язним[джерело?];
- У незв'язному графі — підграф, що складається з об'єднання кістякових дерев для кожної його компоненти зв'язності[1].
- ↑ а б в Р.М. Трохимчук. Теорія графів. — Навчальний посібник для студентів факультету кібернетики. — К : РВЦ «Київський університет», 1998. — С. 24. — ISBN 966-594-043-0.
- ↑ Ю. Нікольский, В. Пасічник, Ю. Щербина. Дискретна математика. — К : BHV, 2007. — С. 368. — ISBN 978-966-552-201-0.